本发明提供了一种存储器系统和操作存储器系统的方法。存储器系统通过下述步骤操作:保持要执行的存储器命令的队列;保持先前执行的存储器命令的列表;将与要执行的命令相关的本地信息和与先前执行的命令的列表相关的本地信息进行比较;基于比较的结果,从要执行的存储器命令的队列中选择用于执行的命令之一。
1.一种操作存储器系统的方法,所述方法包括如下步骤:保持要执行的存储器命令的队列;保持先前执行的存储器命令的列表;将与要执行的命令相关的本地信息和与先前执行的命令的列表相关的本地信息进行比较;基于比较的结果,从要执行的存储器命令的队列中选择用于执行的命令之一。
2.如权利要求1所述的方法,其中,所述本地信息包括信道、通道、直接存储器存取时间、地址转换时间或硬件时序信息。
3.如权利要求1所述的方法,其中,选择用于执行的命令之一的步骤包括从具有最短的预期阻塞时间的要执行的存储器命令的队列中选择用于执行的命令之一。
4.如权利要求1所述的方法,其中,选择用于执行的命令之一的步骤包括:在以先前执行的存储器命令中的最近执行的命令来开始并进行、直至选出用于执行的命令为止期间,执行下述步骤:当余下的候选的命令不都与相同的信道相关时,取消与先前执行的命令的信道相同的信道相关的候选的用于执行命令;然后当余下的候选的命令全都与相同的信道相关但不都与相同的通道相关时,取消与先前执行的命令的信道和通道相同的信道和通道相关的候选的命令;然后当余下的候选的命令都与相同的信道和通道相关时,取消具有最长的直接存储器存取时间的候选的命令。
5.如权利要求4所述的方法,其中,选择用于执行的命令之一的步骤包括当每个余下的候选的命令都与先前执行的命令中的至少一个命令的信道和通道相同的信道和通道相关时,从与先前更近执行的命令的信道和通道相同的信道和通道相关的要执行的存储器命令队列中选择用于执行的命令之一。
6.如权利要求4所述的方法,其中,基于存储器扇区的大小和/或扇区数量来计算直接存储器存取时间。
7.如权利要求4所述的方法,其中,所述信道和通道从逻辑块地址信息中得出。
8.如权利要求1所述的方法,所述方法还包括:当与先前执行的命令之一相关的所有操作都完成时,从先前执行的存储器命令列表中除去先前执行过的命令之一。
9.如权利要求1所述的方法,其中,命令的执行包括地址转换。
10.如权利要求1所述的方法,其中,先前执行的存储器命令列表为循环列表。
11.如权利要求1所述的方法,其中,所述方法是通过闪存转换层执行的。
12.如权利要求1所述的方法,其中,存储器包括闪速存储器。
13.如权利要求12所述的方法,其中,闪速存储器包括NAND、NOR或One_NAND型闪速存储器。
14.一种操作包括主机、存储器控制器和存储器的存储器系统的操作方法,所述方法包括如下步骤:从主机向存储器控制器发送存储器命令;基于先前执行的存储器命令的历史来确定存储器命令的执行顺序;在确定执行顺序的同时从主机向存储器控制器发送写入数据;将写入数据从存储器控制器写入到存储器;从存储器将读取数据读取到存储器控制器中;从存储器控制器向主机发送读取数据。
15.如权利要求14所述的方法,其中,确定执行顺序的步骤包括:保持要执行的存储器命令的队列;保持先前执行的存储器命令的列表;将与要执行的存储器命令相关的本地信息和与先前执行的存储器命令的列表相关的本地信息进行比较;基于比较的结果,从要执行的存储器命令的队列中选择用于执行的存储器命令之一。
16.如权利要求15所述的方法,其中,本地信息包括信道、通道、直接存储器存取时间、地址转换时间或硬件时序信息。
17.如权利要求14所述的方法,其中,存储器包括闪速存储器。
18.如权利要求17所述的方法,其中,闪速存储器包括NAND、NOR或One_NAND型闪速存储器。
19.一种存储器系统,所述存储器系统包括:存储器;存储器控制器,被构造为保持要执行的存储器命令的队列,保持先前执行的存储器命令的列表;将与要执行的命令相关的本地信息和与先前执行的命令的列表相关的本地信息进行比较;基于比较的结果,从要执行的存储器命令的队列中选择用于执行的命令之一。
20.如权利要求19所述的系统,其中,本地信息包括信道、通道、直接存储器存取时间、地址转换时间或硬件时序信息。
21.如权利要求19所述的系统,其中,存储器包括闪速存储器。
22.如权利要求21所述的系统,其中,闪速存储器包括NAND、NOR或One_NAND型闪速存储器。
23.如权利要求19所述的存储器系统,其中,所述存储器系统在下述装置中实施:存储卡装置、固态驱动器装置,ATA总线装置、串行ATA总线装置、小型计算机系统接口装置、串行连接小型计算机系统接口装置、多媒体卡装置、安全数字装置、记忆棒装置、硬盘驱动器装置、混合硬盘驱动器装置或通用串行总线闪存驱动装置。
24.如权利要求19所述的存储器系统,其中,所述存储器系统在下述装置中实施:图形卡、计算机、移动终端、个人数字助理、相机、游戏控制台、MP3播放器、电视机、DVD播放器、路由器或GPS系统。本申请要求于2008年5月21日在韩国知识产权局提交的第10-2008-0047244号韩国专利申请和于2009年4月29日提交的第12/432,299号美国专利申请的权益和优先权,因此,其全部公开通过引用包含于此。
技术领域本发明总体涉及数据处理系统,更具体地讲,涉及存储器装置(例如在数据处理系统中的存储器系统)的使用。
背景技术本地命令队列(Nativexa0Commandxa0Queuing,NCQ)是一种设计为用于增强利用串行高级技术附件(SATA)接口或支持命令队列的其它接口的硬盘驱动器(HDD)的性能的技术。具体地讲,NCQ可允许硬盘使执行接收的读取和写入命令的顺序内部最优化,这可以减少不必要的驱动头运动并改善性能。然而,固态驱动器(SSD)装置不具有在HDD中使用的机械运动部件。因此,NCQ技术通常不应用到SSD装置。
发明内容根据本发明的一些实施例,存储器系统通过下述步骤操作:保持要执行的存储器命令的队列;保持先前执行的存储器命令的列表;将与要执行的命令相关的本地信息和与先前执行的命令的列表相关的本地信息进行比较;基于比较的结果,从要执行的存储器命令的队列中选择用于执行的命令之一。在其它的实施例中,本地信息包括信道(channel)、通道(way)、直接存储器存取(DMA)时间、地址转换时间和/或硬件时序信息。在其它实施例中,选择用于执行的命令之一的步骤包括从具有最短的预期阻塞(blocking)时间的要执行的存储器命令的队列中选择用于执行的命令之一。在其它实施例中,选择用于执行的命令之一的步骤包括:在以先前执行的存储器命令中最接近当前地执行的命令开始并进行直至选出用于执行的命令期间,执行下述步骤:当余下的候选的命令不都与相同的信道相关时,取消与先前执行的命令的信道相同的信道相关的候选的用于执行命令;然后当余下的候选的命令全都与相同的信道相关但不都与相同的信道和通道相关时,取消与先前执行的命令的信道和通道相同的信道和通道相关的候选的命令;然后当余下的候选的命令都与相同的信道和通道相关时,取消具有最长的直接存储器存取时间的候选的命令。在其它实施例中,选择用于执行的命令之一的步骤包括当每个余下的候选的命令都与先前执行的命令中的至少一个命令的信道和通道相同的信道和通道相关时,从和先前更近执行的命令的信道和通道相同的信道和通道相关的要执行的存储器命令队列中选择用于执行的命令之一。在其它实施例中,基于存储器扇区的大小和/或扇区数量来计算DMA时间。在其它实施例中,信道和通道是从逻辑块地址(LBA)信息中得出。在其它实施例中,所述方法还包括当与先前执行的命令之一相关的所有操作都完成时,从先前执行过的存储器命令的列表中除去先前执行的命令之一。在其它实施例中,命令的执行包括转换地址。在其它实施例中,先前执行的存储器命令的列表为循环列表。在其它实施例中,上述方法中至少一个是通过闪存转换层(FTL)执行的。在其它实施例中,存储器包括闪速存储器。在其它实施例中,闪速存储器包括NAND、NOR和/或One_NAND型闪速存储器。在本发明的更多的实施例中,存储器系统包括主机、存储器控制器和存储器,存储器的操作是通过下述步骤实现的:从主机向存储器控制器发送存储器命令;基于先前执行的存储器命令的历史来确定存储器命令的执行顺序;在确定执行顺序的同时从主机向存储器控制器发送写入数据;将写入数据从存储器控制器写入到存储器;从存储器将读取数据读取到存储器控制器中;从存储器控制器向主机发送读取数据。在更多的实施例中,确定执行顺序的步骤包括:保持要执行的存储器命令的队列;保持先前执行的存储器命令的列表;将与要执行的存储器命令相关的本地信息和与先前执行的存储器命令的列表相关的本地信息进行比较;基于比较的结果,从要执行的存储器命令的队列中选择用于执行的存储器命令之一。在更多的实施例中,本地信息包括信道、通道、直接存储器存取(DMA)时间、地址转换时间和/或硬件时序信息。在更多的实施例中,存储器包括闪速存储器。在更多的实施例中,闪速存储器包括NAND、NOR和/或One_NAND型闪速存储器。在本发明的其它实施例中,存储器系统包括:存储器和存储器控制器,所述存储器控制器被构造为保持要执行的存储器命令的队列,保持先前执行的存储器命令的列表;将与要执行的命令相关的本地信息和与先前执行的命令的列表相关的本地信息进行比较;基于比较的结果,从要执行的存储器命令的队列中选择用于执行的命令之一。在其它的实施例中,本地信息包括信道、通道、直接存储器存取(DMA)时间、地址转换时间和/或硬件时序信息。在其它实施例中,存储器包括闪速存储器。在其它实施例中,闪速存储器包括NAND、NOR和/或One_NAND型闪速存储器。在其它实施例中,存储器系统在下述装置中实施:存储卡装置、固态驱动器(SSD)装置,ATA总线装置、串行ATA总线装置、小型计算机系统接口(SCSI)装置、串行SCSI(SAS)装置、多媒体卡(MMC)装置、安全数字(SD)装置、记忆棒装置、硬盘驱动器装置(HDD)、混合硬盘驱动器(HHD)装置或通用串行总线(USB)闪存驱动装置。在其它实施例中,存储器系统在下述装置中实施:图形卡、计算机、移动终端、个人数字助理(PDA)、相机、游戏控制台、MP3播放器、电视机、DVD播放器、路由器或GPS系统。对本领域技术人员来说,通过审查下面的附图和具体描述,根据本发明的实施例的其它系统和方法将是或变得清楚。意图是将所有这些额外的系统和方法包括在本说明中,包括在本发明的范围中,并得到权利要求的保护。
附图说明当结合附图阅读下面的对本发明特定实施例的具体描述时,本发明的其它特征将更容易被理解,附图中:图1是根据本发明一些实施例的存储器系统的框图;图2是示出根据本发明一些实施例的图1的存储器系统的存储器的框图;图3A和图3B是示出根据本发明一些实施例的图1的存储器系统的读取操作的框图;图4A、图4B和图4C是示出根据本发明一些实施例的图1的存储器系统的写入操作的框图;图5是根据本发明更多实施例的存储器系统的框图;图6是示出根据本发明一些实施例的存储器命令历史的框图;图7是示出根据本发明一些实施例的选择用于执行的存储器命令的方法的框图;图8是示出基于先前执行的存储器命令的历史来选择用于执行的存储器命令的存储器系统的操作的消息流示图;图9和图10示出了根据本发明一些实施例的在存储器系统上执行写入请求命令和读取请求命令的实验结果;图11是根据本发明一些实施例的包括存储器系统的电子系统的框图。
具体实施方式虽然本发明允许各种修改和替换形式,但是通过附图中的例子的方式示出本发明的特定实施例并在此进行详细描述。然而,应该理解的是,没有意图将本发明限制为公开的具体形式,相反,本发明将覆盖落入由权利要求限定的本发明的精神和范围内的所有修改、等同物和替换物。在对附图的整个说明中,相同的标号表示相同的元件。如这里所使用的,除非另外清楚地指出,否则单数形式也意图包括复数形式。还应理解的是,当在本说明书中使用术语“包含”和/或“包括”时,说明存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组。应该理解的是,当元件被称作“连接”或“结合”到另一元件时,该元件可以直接连接或结合到另一元件,或者可以存在中间元件。此外,如这里使用的,“连接”或“结合”可以包括无线连接或结合。如这里所使用的,术语“和/或”包括一个或多个相关所列项的任意组合和所有组合。除非另有定义,否则这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域的普通技术人员所通常理解的意思相同的意思。还将理解的是,除非这里明确定义,否则术语(诸如在通用字典中定义的术语)应该被解释为具有与相关领域的环境中它们的意思一致的意思,而将不以理想的或者过于正式的含义来解释它们。为了示出的目的,这里参照包括闪速存储器数据存储装置的存储器系统对本发明的多个实施例进行描述。应该理解的是,所述数据存储装置不限于闪速存储器装置的实施方式,而是可以通常地实施到写入前擦除(erasexa0beforewrite)存储器装置。此外,应该理解的是,所述数据存储装置不限于非易失性存储器装置的实施方式,还可以实施到诸如动态随机存取存储器(DRAM)等的易失性存储器装置上。所述数据存储装置可以为存储卡装置、固态驱动器(SSD)装置,ATA总线装置、串行ATA(SATA)总线装置、小型计算机系统接口(SCSI)装置、串行连接SCSI(SAS)装置、多媒体卡(MMC)装置、安全数字(SD)装置、存储棒装置、硬盘驱动器(HDD)装置、混合硬盘驱动器(HHD)装置和/或通用串行总线(USB)闪存装置。根据本发明的一些实施例,包括存储器控制器和存储器的存储器系统(例如固态驱动器(SSD))装置可以通过保持要执行的存储器命令队列和先前执行的存储器命令列表来操作。可以在要执行的存储器命令和先前已经执行了的那些存储器命令之间进行比较以选择下一个存储器命令来执行,从而可以缩短预期的阻塞(blocking),这可以增强存储器系统的性能。现在参照图1,电子设备包括利用诸如串行高级技术附件(SATA)协议或其它支持命令队列协议的SSD存储器系统500和主机900。本地命令队列(NCQ)和标记命令队列(TCQ)可以应用到本发明以用于命令队列。SSDxa0500包括SSD控制器100和闪速存储器300。在本发明中,可以应用本发明的闪速存储器300将被作为例子进行描述。然而,将要描述的闪速存储器300不限于本发明的闪速存储器的特定形式、程序或读取特征。闪速存储器300包括与通讯信道(channel)CH_0、CH_1、...、CH_(N-1)分别相连的多个闪存芯片310、320、...、330。此外,可以存在多个闪存芯片与每个通讯信道相连。与同一的信道相连的闪存芯片可以由通道号(wayxa0number)识别。有时,将闪速存储器系统中的信道的管理分组(managementxa0grouping)称为“单位(unit)”,有时,将闪速存储器系统中的通道的管理分组称为“库(bank)”。控制器100可以被构造为存储闪速存储器300的命令历史50并对从主机900接收的命令的执行进行调度(schedule)。在本发明的一些实施例中,控制器100基于先前执行的存储器命令的命令历史50来选择具有最短的预期阻塞时间的用于执行的存储器命令。在一些实施例中,阻塞时间指由于通讯信道繁忙或闪存芯片繁忙引起的等待时间。主机900和存储器系统500之间的通讯接口可以支持本地命令队列(NCQ)或其它命令队列方法以允许主机900不间断地传递多个存储器命令。本发明的一些实施例可以应用到支持存储器命令队列且在控制器100和闪速存储器300之间构造多个通讯信道的系统中。图2是更详细地示出根据本发明一些实施例的图1的闪速存储器300的框图。如图2中所示,闪速存储器300包括与通讯信道CH_0、CH_1、...、CH_(N-1)分别相连的多个闪存芯片310、320、...、330。每个通讯信道可以独立于其它通讯信道操作。共享同一通讯信道的闪存芯片通过通道号区分。根据本发明的一些实施例,闪速存储器300中的每个芯片可以通过通道和通讯信道来识别,所述通道和通讯信道可以基于逻辑块地址(LBA)计算出。在一些实施例中,闪速存储器300为NAND、NOR和/或One_NAND型闪速存储器。图3A和图3B是示出在图1的SSDxa0500上执行多个读取命令时的时序要求的框图。如图3A和图3B中所使用的,f/w表示与固件操作相关的时间,tR表示从闪速存储器300内的存储器单元到闪速存储器300内的寄存器的读取时间,tRE表示从闪速存储器300内的寄存器到控制器100内的RAM的读取时间。如图3A所示,当多个读取命令在不同的通讯信道上被下达到闪速存储器300时,可以并行地执行所述读取命令。在图3A中,与在不同通讯信道上的读取命令的固件操作相关的时间f/w可以彼此相同,或可以彼此不同。例如,可以在不同的通信信道上同时执行下达的读取命令。此外,可以彼此不同时地执行下达的读取命令以等待在每个通讯信道上的先前执行的命令的完成。然而,如图3B所示,当多个读取命令在同一通讯信道上被下达到闪速存储器300上时,第二读取命令被阻塞直至第一读取命令完成从闪速存储器300内的寄存器到控制器100内的RAM的读取操作。图4A、图4B和图4C是示出当在图1的SSDxa0500上执行多个写入命令时的时序要求的框图。如图4A、图4B和图4C中所使用的,tWE表示从控制器100内的RAM到闪速存储器300内的页缓冲器的写入时间,tPROG表示从闪速存储器300内的页缓冲器到闪速存储器300内的单元阵列的写入时间。如图4A所示,当多个读取和/或写入命令在不同的通讯信道上被下达到闪速存储器300时,可以并行地执行所述读取和/或写入命令。在图4A中,与在不同通讯信道上的读取和/或写入命令的固件操作相关的时间f/w可以彼此相同,或可以彼此不同。例如,可以在不同的通讯信道上同时执行被下达的读取和/或写入命令。此外,可以等待在每个通讯信道上完成先前执行的读取和/或写入命令而以彼此不同的时序执行被下达的读取和/或写入命令。然而,如图4B所示,当多个读取和/或写入命令在相同的通讯信道但在不同的通道上被下达到闪速存储器300时,读取操作被阻塞直至写入操作完成从控制器100内的RAM到闪速存储器300内的页缓冲器的写入。如图4C所示,当多个读取和/或写入命令在相同的通讯信道和相同的通道上被下达到闪速存储器300时,读取操作被阻塞直至写入操作完成从控制器100内的RAM到闪速存储器300内的页缓冲器的写入和从页缓冲器到闪速存储器300内的单元阵列的写入。在图4A、图4B和图4C中,如果对整个页进行写入,就不需要时间tR;然而,当对部分页进行写入时,执行修改的回复制操作(copyxa0backoperation),其中,首先将数据读取到闪速存储器300内的页缓冲器中,将额外的数据写入到页缓冲器,然后将页缓冲器写入到单元阵列。图5是根据本发明一些实施例的SSDxa0500的详细框图。控制器100包括:CPUxa0110;工作存储器120,包括命令历史50;主机接口140,包括用于在控制器100和主机之间传输命令/数据的寄存器150;缓冲存储器控制单元160;闪存接口180,包括用于在控制器100和闪速存储器300之间进行命令/数据通信的寄存器190。各种控制器100组件通过CPU总线130通信。主机接口140可以被构造为利用各种接口协议(如USB、MMC、快捷外围组件互连总线(PCI-E)、高级技术附件(ATA)、串行高级技术附件(SATA)、并行-ATA、小型计算机系统接口(SCSI)、SAS(串行连接SCSI)、加强型小型设备接口(ESDI)和集成驱动电子设备(IDE)进行通信。主机接口140可以支持如SATA协议、SCSI协议和SAS协议的支持命令队列的协议。可以这样构造缓冲存储器170,以存储在闪速存储器300和主机900之间传输的数据并存储命令历史50′,在本发明的一些实施例中,命令历史50′还可以作为命令历史50存储在工作存储器120中。因此,根据本发明的各个实施例,命令历史可以存储在工作存储器120和缓冲存储器170中的一个或两个中。缓冲存储器170可以位于SSD控制器100的内部区域上,并可以位于SSD控制器100的外部区域上。可以将主机接口140构造为将地址转换为LBA。可以将在工作存储器120中的闪存转换层(FTL)构造为将LBA转换成物理块地址(PBA)。可以将FTL构造为利用命令历史50和/或50′对具有被缩短的或在某些情况下最短的预期阻塞时间的用于执行的存储器命令进行调度。调度后的存储器命令和PBA一起通过闪存接口180中的寄存器190传输到闪速存储器300。图6是示出根据本发明一些实施例的存储器命令历史的框图。如图6所示,根据本发明的一些实施例,在命令历史队列或列表中的每个命令51-56可以包括诸如信道、通道、直接存储器存取(DMA)时间及命令为读取命令还是写入命令的本地信息。在其它实施例中,本地信息还可以包括地址转换时间和/或硬件时序信息。可以基于存储器扇区大小和/或扇区数量(sectorcount)计算DMA时间。当所有与所述命令相关的操作都完成时,可以从列表中去除先前执行过的命令。在一些实施例中,命令历史队列可以为循环队列。根据本发明的一些实施例,即使没有完成诸如写入闪存单元阵列操作的全部操作,也可以在完成地址转换后,认为命令已经被执行。现在将通过参照图6和图7的框图举例描述根据本发明的一些实施例的选择用于执行的存储器命令的示例性操作。图6示出了存储器命令历史列表,图7示出了根据本发明一些实施例的候选的用于执行的存储器命令150的队列。根据本发明一些实施例,可以将FTL模块构造为将图7示出的与要执行的候选存储器命令的列表相关的本地信息和与图6示出的先前执行的命令的列表相关的本地信息进行比较,以选择具有被缩短的或最短的预期阻塞时间的用于执行的命令。参照图6和图7,通过FTL检查命令55并确定命令55是在信道2上执行的来开始操作。然后,因为候选的命令143也被指派给信道2,所以FTL从图7的候选队列中取消候选的命令143。之后,FTL检查图6中的命令54来确定命令54是在信道1上执行的。然后,因为候选的命令142也被指派给信道1,所以FTL从图7的候选队列中取消候选的命令142。之后,FTL检查图6中的命令53来确定命令53是在信道3上执行的。然后,因为候选的命令144也被指派给信道3,FTL从图7的候选队列中取消候选的命令144。之后,FTL检查图6中的命令52来确定命令52是在信道0上执行的。然后,FTL确定剩余的候选的命令141和候选的命令145都被指派给信道0。FTL检查图6中的命令51来确定命令51是在信道0上执行的;然而,命令51被指派给通道0而命令52被指派给通道1。然而,图7中的候选的命令141和候选的命令145被分别指派给通道0和通道1。然后,因为候选的命令145被指派给信道0和通道1(与命令52相同),所以FTL从图7的候选队列中取消候选的命令145。然后,FTL选择在信道0、通道0上的候选的命令141来执行。如果余下的候选的命令都与相同的信道和通道相关时,则FTL取消具有最长的直接存储器存取(DMA)时间的候选的命令,所述直接存储器存取时间基于存储器扇区大小或扇区数量计算。在一些实施例中,如果每个余下的候选的命令都与先前执行的命令中的至少一个命令的信道和通道相同的信道和通道相关,则FTL从与先前更近执行的命令的信道和通道相同的信道和通道相关的要执行的存储器命令队列中选择用于执行的命令之一。然而,在一些实施例中,如果最佳的候选的用于执行的命令以与先前的写入命令的信道和通道相同的信道和通道相关的写入命令作为结束,则优选的候选的命令可以为与历史中更接近当前的先前执行的命令冲突的命令;具体地讲,因为完成读取命令占用的时间短于完成写入命令占用的时间,所以如果更接近当前的执行的命令是读取命令,则优选的候选的命令可以为与历史中更接近当前的先前执行的命令冲突的命令。例如,参照图6和图7,FTL检查与命令51和命令52相关的DMA时间来确定命令51具有15μs的DMA时间而命令52具有30μs的DMA时间。因为在信道0、通道0上先前执行的命令51与在信道0、通道1上先前执行的命令52相比,先前执行的命令51具有较短的DMA时间,所以FTL取消指派给信道0、通道1的候选的命令145,并选择在信道0、通道0上的候选的命令141来执行。在选择候选的命令141来执行后,与候选的命令141对应的本地信息56被存储在图6中的命令历史队列或列表中。在根据本发明的一些实施例的选择用于执行的存储器命令的另一示例性操作中,可以通过由FTL监视信道的条件,在完成先前的读取和/或写入命令的信道中执行读取和/或写入命令。此外,可以基于通过FTL得到的信道条件的监视结果首先在具有空闲通道的信道上执行读取和/或写入命令。图8是示出根据本发明一些实施例的基于先前执行的存储器命令的历史来选择用于执行的存储器命令的存储器系统的操作的消息流示图。主机900通过主机接口向控制器100发送读取和写入NCQ命令请求(S1100),所述主机接口支持如SATA协议、SCSI协议和SAS协议的支持命令队列的协议。控制器100利用确认(acknowledgement)进行响应(S1200)。然后控制器100向主机发送写入操作的DMA设置(setup)请求(S1300)。DMA设置的时序根据命令而不同。在写入命令的情况下,在产生NCQ命令之后,控制器100立即请求DMA设置,从而提前从主机得到写入数据。可以在控制器100处在安排NCQ命令时序过程中请求DMA设置。当控制器100向主机900发出DMA设置请求时,主机向控制器100发送写入数据(S1400)。控制器100可以将写入数据存储在缓冲存储器170中。在控制器100将写入数据存储在缓冲存储器170的同时,如上面参照图6和图7所述,FTL对接收的用于执行的NCQ命令进行调度(S2200)。在双处理器系统中,例如,在FTL完成LBA和PBA之间的映射操作之前,控制器100可以对另一命令进行调度。然后在存储器300上执行被调度了的命令(S2300)。在写入命令的情况下,从在控制器100中的缓冲存储器向存储器300提供写入数据(S2400)。在读取命令的情况下,从存储器300读取的命令存储在控制器100中的缓冲存储器中(S2500)。控制器100向主机900发送读取命令的DMA设置请求(S1600)。然后控制器100将存储在缓冲存储器中的读取数据提供到主机900(S1700)。图9和图10示出了在根据本发明一些实施例的在存储器系统上执行写入请求命令和读取请求命令的实验结果。如图9所示,根据本发明的一些实施例,利用存储器命令的重新排序,可以将执行8KB随机写入的时间从879μs减少到630μs。如图10所示,根据本发明的一些实施例,利用存储器命令的重新排序,可以将执行8KB随机读取的时间从657μs减少到321μs。图11是示出根据本发明一些实施例的包括存储器系统的电子系统(如计算机系统)的框图。如图11所示,电子系统可以包括:微处理器主机900;用户接口800;电池700;SSDxa0500,包括存储器300(例如闪速存储器)和具有存储有先前执行的存储器命令50的列表的SSD存储器控制器100;调制解调器600,它们通过地址/数据总线彼此结合。控制器100和存储器300可以如上面参照图1-10所述地实施。因此,根据本发明的一些实施例,包括控制器100和存储器300的存储器系统,可以在电子系统,例如但不限于图形卡、计算机、移动终端、个人数字助理(PDA)、相机、游戏控制台、MP3播放器、电视机、DVD播放器、路由器和/或GPS系统中实施。根据本发明的一些实施例的SSD存储器控制器100和/或存储器300可以通过多种封装型式设置在计算机系统中,所述多种封装型式包括层叠封装(PoP)、球栅阵列(BGA)、芯片级封装(CSP)、塑料有引线芯片载体(PLCC)、塑料双列直插式封装(PDIP)、窝伏尔中芯片(diexa0inxa0wafflexa0pack)、晶片中芯片形式、板上芯片(COB)、陶瓷双列直插式封装(CERDIP)、塑料公制方型扁平封装(MQFP)、薄型四方扁平封装(TQFP)、小外型(SOIC)、缩小外形封装(SSOP)、薄型小外型封装(TSOP)、系统级封装(SIP)、多芯片封装(MCP)、晶片级制造封装(WFP)、晶片级处理堆叠封装(WSP)和/或晶片级处理封装(WPP)等。在一些实施例中,可以将闪速存储器装置100的存储单元构造成具有电荷存储单元的各种形式。可以通过包括电荷捕获层、堆叠多个单元阵列的堆叠单元阵列、没有源区和漏区的闪存装置和/或接脚型闪存结构等实现闪存装置的电荷存储结构。可以在实质上不脱离本发明的原理的情况下对实施例作出许多改变和修改。这里,意图将所有这些改变和修改包括在如权利要求所提出的本发明的范围内。